現在有幾個collection在ProductController.php中
public function getData(){
return collect([
collect([
'id' => 0
'fruit' => 'apple',
'price' => '每袋50元',
'origin' => '日本'
]),
collect([
'id' => 1
'fruit' => 'banana',
'price' => '每袋70元',
'origin' => '台灣'
])
]);
}
終端機執行php artisan route:list查看路由路徑
從route list可以看到Update要使用PUT Method,路徑products/{product}是指網址後面還要指定的id參數({product})
現在假設要更新id為0的資料,到Postman建立新的測試api頁,選擇PUT Method,選擇Body/x-www-form-urlencoded(在laravel架構PUT/PATCH Method的資料傳遞方式)打上要更新的資料。
檢查資料是否有傳遞到後端
public function update(Request $request, $id)
{
dd($request->all()); //dd()和dump用法相似,但使用dd()顯示資料後就會停止
dump('不會被顯示出來');
}
確定有取得資料
public function update(Request $request, $id)
{
$update = $request->all();
$data = $this -> getData();
$selected = $data -> where('id',$id)->first(); //選擇指定id的資料,first()可以直接取得該筆資料
$selected = $selected->merge(collect($update)); //將指定的資料更新成新的資料
return response($selected);
}
資料就被更新完成了~